package com.wondertek.service.service.sys;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wondertek.service.dto.sys.req.SysJobAddReq;
import com.wondertek.service.dto.sys.req.SysJobUpdateReq;
import com.wondertek.service.entity.sys.SysJobPo;

/**
 * @author wangyu
 */
public interface ISysJobService extends IService<SysJobPo> {

    /**
     * 新增任务
     *
     * @param sysJobAddReq
     * @return
     */
    String add(SysJobAddReq sysJobAddReq);

    /**
     * 更新定时任务
     *
     * @param sysJobUpdateReq
     * @return
     */
    boolean updateSysJob(SysJobUpdateReq sysJobUpdateReq);

    /**
     * 判断任务是否存在
     *
     * @param id
     * @return
     */
    boolean isCheckExistsJob(String id);

    /**
     * 强制重建定时任务
     *
     * @param id
     */
    void foredCreation(String id);

    /**
     * 立即运行任务
     *
     * @param jobId
     */
    void run(String jobId);

    /**
     * 删除定时任务
     *
     * @param id
     * @return
     */
    boolean removeJobById(String id);

    /**
     * 恢复任务
     *
     * @param jobId
     * @return
     */
    boolean resumeJob(String jobId);

    /**
     * 暂停任务
     *
     * @param jobId
     * @return
     */
    boolean pauseJob(String jobId);
}
